﻿using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;

namespace 凯旋归来管理端.models
{
    public class NPC列表
    {
        public int Id;
        public string 英文名称;
        public string 中文名称;
        public int X;
        public int Y;
        public int Z;
        public float 方向;
        public string 类型;
        public string 欢迎语;
        public float 大小;
        public static NPC列表[] 数据表转数组(DataTable dt)
        {
            NPC列表[] ret = new NPC列表[dt.Rows.Count];
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                ret[i] = new NPC列表();
                int.TryParse(dt.Rows[i]["id"].ToString(), out ret[i].Id);
                ret[i].中文名称 = dt.Rows[i]["中文名称"].ToString();
                ret[i].英文名称 = dt.Rows[i]["英文名称"].ToString();
                int.TryParse(dt.Rows[i]["X"].ToString(), out ret[i].X);
                int.TryParse(dt.Rows[i]["Y"].ToString(), out ret[i].Y);
                int.TryParse(dt.Rows[i]["Z"].ToString(), out ret[i].Z);
                float.TryParse(dt.Rows[i]["方向"].ToString(), out ret[i].方向);
                ret[i].类型 = dt.Rows[i]["类型"].ToString();
                ret[i].欢迎语 = dt.Rows[i]["欢迎语"].ToString();
                float.TryParse(dt.Rows[i]["大小"].ToString(), out ret[i].大小);
            }
            return ret;
        }
        public string 保存已有NPC(string connstr)
        {

            string sql = "UPDATE NPC列表 SET 中文名称=@0,英文名称=@1,X=@2,Y=@3,Z=@4,方向=@5,类型=@6,欢迎语=@7,大小=@8 WHERE id=@9";
            using (MySqlConnection conn = new MySqlConnection(connstr))
            {
                try
                {
                    conn.Open();
                    MySqlCommand cmd = new MySqlCommand(sql, conn);
                    cmd.Parameters.AddWithValue("@0", this.中文名称);
                    cmd.Parameters.AddWithValue("@1", this.英文名称);
                    cmd.Parameters.AddWithValue("@2", this.X);
                    cmd.Parameters.AddWithValue("@3", this.Y);
                    cmd.Parameters.AddWithValue("@4", this.Z);
                    cmd.Parameters.AddWithValue("@5", this.方向);
                    cmd.Parameters.AddWithValue("@6", this.类型);
                    cmd.Parameters.AddWithValue("@7", this.欢迎语);
                    cmd.Parameters.AddWithValue("@8", this.大小);
                    cmd.Parameters.AddWithValue("@9", this.Id);
                    cmd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    return ex.ToString(); ;
                }
                finally
                {
                    conn.Close();
                }
            }
            return "";
        }
        public string 新建NPC(string connstr)
        {

            string sql = "INSERT INTO NPC列表 (中文名称,英文名称,X,Y,Z,方向,类型,欢迎语,大小)VALUE(@0,@1,@2,@3,@4,@5,@6,@7,@8)";
            using (MySqlConnection conn = new MySqlConnection(connstr))
            {
                try
                {
                    conn.Open();
                    MySqlCommand cmd = new MySqlCommand(sql, conn);
                    cmd.Parameters.AddWithValue("@0", this.中文名称);
                    cmd.Parameters.AddWithValue("@1", this.英文名称);
                    cmd.Parameters.AddWithValue("@2", this.X);
                    cmd.Parameters.AddWithValue("@3", this.Y);
                    cmd.Parameters.AddWithValue("@4", this.Z);
                    cmd.Parameters.AddWithValue("@5", this.方向);
                    cmd.Parameters.AddWithValue("@6", this.类型);
                    cmd.Parameters.AddWithValue("@7", this.欢迎语);
                    cmd.Parameters.AddWithValue("@8", this.大小);
                    cmd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    return ex.ToString(); ;
                }
                finally
                {
                    conn.Close();
                }
            }
            return "";
        }
    }   
}
